#include "widget.h"
#include "ui_widget.h"

#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFormLayout>
#include <QLabel>
#include <QLineEdit>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 创建一个垂直布局器
    QVBoxLayout* layoutParent = new QVBoxLayout();
    this->setLayout(layoutParent);

    // 将两个按钮放入垂直布局器中
    QPushButton* btn1 = new QPushButton("按钮1");
    QPushButton* btn2 = new QPushButton("按钮2");
    layoutParent->addWidget(btn1);
    layoutParent->addWidget(btn2);

    // 创建一个水平布局器中
    QHBoxLayout* layoutChild = new QHBoxLayout();
    // 创建 Spacer
    QSpacerItem* spacer = new QSpacerItem(200, 20);

    QPushButton* btn3 = new QPushButton("按钮3");
    QPushButton* btn4 = new QPushButton("按钮4");
    layoutChild->addWidget(btn3);
    // 在两个 widget 中间添加空白
    layoutChild->addSpacerItem(spacer);
    layoutChild->addWidget(btn4);

    // 向水平布局器中放入垂直布局器
    layoutParent->addLayout(layoutChild);

    // QFormLayout* layout = new QFormLayout();
    // this->setLayout(layout);

    // QLabel* label1 = new QLabel("姓名");
    // QLabel* label2 = new QLabel("年龄");
    // QLabel* label3 = new QLabel("电话");

    // QLineEdit* lineEdit1 = new QLineEdit();
    // QLineEdit* lineEdit2 = new QLineEdit();
    // QLineEdit* lineEdit3 = new QLineEdit();

    // QPushButton* btn = new QPushButton("提交");

    // layout->addRow(label1, lineEdit1);
    // layout->addRow(label2, lineEdit2);
    // layout->addRow(label3, lineEdit3);
    // layout->addRow(NULL, btn);

    // QPushButton* btn1 = new QPushButton("按钮1");
    // QPushButton* btn2 = new QPushButton("按钮2");
    // QPushButton* btn3 = new QPushButton("按钮3");
    // QPushButton* btn4 = new QPushButton("按钮4");

    // QGridLayout* layout = new QGridLayout();
    // layout->addWidget(btn1, 0, 0); // btn1在第0行第0列
    // layout->addWidget(btn2, 0, 1); // btn2在第0行第1列
    // layout->addWidget(btn3, 1, 0); // btn3在第1行第0列
    // layout->addWidget(btn4, 1, 1); // btn4在第1行第1列

    // // 设置按钮的长宽都要进行拉伸
    // btn1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    // btn2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    // btn3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    // btn4->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    // this->setLayout(layout);

    // // 创建一个水平布局器
    // QVBoxLayout* layoutParent = new QVBoxLayout();
    // this->setLayout(layoutParent);

    // // 将两个按钮放入水平布局器中
    // QPushButton* btn1 = new QPushButton("按钮1");
    // QPushButton* btn2 = new QPushButton("按钮2");
    // layoutParent->addWidget(btn1);
    // layoutParent->addWidget(btn2);

    // // 创建一个垂直布局器中
    // QHBoxLayout* layoutChild = new QHBoxLayout();

    // QPushButton* btn3 = new QPushButton("按钮3");
    // QPushButton* btn4 = new QPushButton("按钮4");
    // layoutChild->addWidget(btn3);
    // layoutChild->addWidget(btn4);

    // // 向水平布局器中放入垂直布局器
    // layoutParent->addLayout(layoutChild);

    /*
    QPushButton* btn1 = new QPushButton("按钮1");
    QPushButton* btn2 = new QPushButton("按钮2");
    QPushButton* btn3 = new QPushButton("按钮3");

    // 创建布局管理器, 并且把按钮添加进去
    // 如果创建的时候指定父元素为 this, 则后面不需要 setLayout 方法了
    QVBoxLayout* layout = new QVBoxLayout();
    layout->addWidget(btn1);
    layout->addWidget(btn2);
    layout->addWidget(btn3);

    // 把布局管理器设置到 widget 中
    this->setLayout(layout);
    */

    // // 创建三个按钮
    // QPushButton* btn1 = new QPushButton("按钮1");
    // QPushButton* btn2 = new QPushButton("按钮2");
    // QPushButton* btn3 = new QPushButton("按钮3");

    // // 创建布局管理器
    // QHBoxLayout* layout = new QHBoxLayout();
    // layout->addWidget(btn1);
    // layout->addWidget(btn2);
    // layout->addWidget(btn3);

    // // 设置 layout 到 widget 上
    // this->setLayout(layout);
}

Widget::~Widget()
{
    delete ui;
}
